home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Foxpro 2.6 {Windows} / SCAFFOLD.PR_ / SCAFFOLD.bin
Text File  |  1994-03-10  |  12KB  |  540 lines

  1. *      +---------------------------------------------------------+
  2. *       |                                                         |
  3. *       | 02/21/94               scaffold.prg            16:25:48 |
  4. *       |                                                         |
  5. *       +---------------------------------------------------------+
  6. *       |                                                         |
  7. *       | Description:                                            |
  8. *       | This program was automatically generated by FoxApp.     |
  9. *       |                                                         |
  10. *       +---------------------------------------------------------+
  11. *
  12. *       To run this application, type DO SALES.APP
  13. *
  14. * Set up runtime environment
  15. CREATE VIEW appview
  16. SET TALK OFF
  17. PUSH MENU _msysmenu
  18. PUSH KEY CLEAR
  19. fxapp_error = ON('ERROR')
  20. fxapp_esc   = ON('ESCAPE')
  21. SET SAFETY OFF
  22. SAVE MACROS TO foxapp
  23. SET SAFETY ON
  24. SET DELETED ON
  25. SET ESCAPE OFF
  26. SET STEP OFF
  27. SET ECHO OFF
  28. SET PROCEDURE TO appproc.prg
  29. SET CURSOR ON
  30. m.set_point = SET("POINT")
  31. CLOSE DATABASES
  32. ON ERROR DO apperror WITH PROGRAM(),MESSAGE(),MESSAGE(1),LINENO(),ERROR()
  33.  
  34. IF _WINDOWS OR _MAC
  35.    * Store current screen font and set it to something reasonable.
  36.    m.scrn_font   = WFONT(1,"")
  37.    m.scrn_fsize  = WFONT(2,"")
  38.    m.scrn_fstyle = WFONT(3,"")
  39.    MODIFY WINDOW SCREEN FONT "MS Sans Serif",8 STYLE "B"
  40. ENDIF
  41.  
  42. IF TYPE("BAILOUT") <> "U"
  43.    RELEASE m.bailout
  44. ENDIF
  45. IF TYPE("DBFNAME") <> "U"
  46.    RELEASE m.dbfname
  47. ENDIF
  48. IF TYPE("WIN_NAME") <> "U"
  49.    RELEASE m.win_name
  50. ENDIF
  51. IF TYPE("FILT_EXPR") <> "U"
  52.    RELEASE m.filt_expr
  53. ENDIF
  54. IF TYPE("SRCHTERM") <> "U"
  55.    RELEASE m.srchterm
  56. ENDIF
  57. regen = .F.
  58. EXTERNAL PROCEDURE getdest, getorder, appabout, ;
  59.                     appsrch, prtopts, prtsetup
  60.  
  61. PUBLIC bailout, dbfname, win_name, wiz_screen, filt_expr, srchterm
  62. m.bailout = .F.
  63. m.dbfname = "C:\FPW26\SAMPLE\CATALOG\SALESMAN.DBF"     && database name
  64. m.qprpath = justpath(m.dbfname) && query file path
  65. m.filt_expr = ""                && filter expression, if any
  66. m.srchterm = SPACE(60)          && search term
  67. m.win_name = ""                 && name assigned below
  68. m.wiz_screen = .F.              && assume false for now
  69.  
  70. * Define constants for addressing DBFLIST
  71. m.numareas   = 25
  72. m.numcols    = 13
  73. m.cstemnum   = 1
  74. m.relstrnum  = 2
  75. m.pfldnum    = 3
  76. m.cfldnum    = 4
  77. m.cdbfnum    = 5
  78. m.pdbfnum    = 6
  79. m.srownum    = 7
  80. m.scolnum    = 8
  81. m.erownum    = 9
  82. m.ecolnum    = 10
  83. m.arranged   = 11
  84. m.thefont    = 12
  85. m.cascadenum = 13
  86. m.ctrlrow    = 36
  87. m.ctrlcol    = 30
  88. m.nextdbf    = 0
  89. DO DefineDbf                    && define the DBFLIST array
  90.  
  91.  
  92. * Summon the main application menu
  93. DO "APPMENU.PRG"
  94.  
  95. * Open the main database
  96. m.stem = makealias(juststem(m.dbfname))
  97. IF USED(m.stem)
  98.    SELECT (m.stem)
  99. ELSE
  100.    SELECT 0
  101.    IF !FILE(m.dbfname)
  102.       m.dbfname = GETFILE('DBF',"Please locate the "+JustStem(m.dbfname)+" database")
  103.    ENDIF
  104.    IF EMPTY(m.dbfname) OR !FILE(m.dbfname)
  105.       DO alert WITH "The " +m.stem+" database could not be found."
  106.       DO cleanup
  107.       RETURN
  108.    ELSE
  109.       USE (m.dbfname)
  110.    ENDIF
  111. ENDIF
  112. * Make sure the index exists and is hooked up
  113. IF EMPTY(CDX(1))
  114.    IF !FILE(forceext(m.dbfname,'CDX'))
  115.       DO invert WITH m.dbfname
  116.    ELSE
  117.       SET INDEX TO (forceext(m.dbfname,'CDX'))
  118.    ENDIF
  119. ENDIF
  120. SET ORDER TO 1
  121.  
  122. IF RECCOUNT() = 0
  123.    APPEND BLANK
  124. ELSE
  125.    IF RECCOUNT() < 10
  126.       COUNT FOR !DELETED() TO notdel
  127.       IF m.notdel = 0
  128.          APPEND BLANK  && all records were deleted!
  129.       ENDIF
  130.    ENDIF
  131. ENDIF
  132. GOTO TOP
  133.  
  134. CLEAR
  135. m.win_name = ""
  136. m.wiz_screen = .T.
  137. DO WHILE !m.bailout
  138.    * Set up any related databases
  139.    DO setrelat
  140.    * Display the main screen file
  141.    DO "salesman.spr"
  142.    * Make sure nothing closed the database unexpectedly
  143.    m.stem = makealias(juststem(m.dbfname))
  144.    IF !USED(m.stem)
  145.       SELECT 0
  146.       USE (m.dbfname)
  147.    ENDIF
  148. ENDDO
  149. DO cleanup
  150. RETURN
  151.  
  152.  
  153. *******************************************************************
  154. PROCEDURE cleanup
  155. * Clean up after the application
  156. SET PROCEDURE TO
  157. CLOSE DATABASES
  158. CLEAR WINDOWS
  159. IF _WINDOWS OR _MAC
  160.    MODIFY WINDOW SCREEN FONT m.scrn_font, m.scrn_fsize STYLE m.scrn_fstyle
  161. ENDIF
  162. IF SET('TALK') = 'ON'
  163.    SET TALK OFF
  164.    m.t_stat = 'ON'
  165. ELSE
  166.    m.t_stat = 'OFF'
  167. ENDIF
  168. SET TALK OFF
  169. * Restore databases, indexes and environment
  170. IF FILE("appview.vue")
  171.    SET VIEW TO appview
  172.    SET TALK OFF
  173.    DELETE FILE appview.vue
  174. ENDIF
  175. IF FILE("foxapp.fky")
  176.    RESTORE MACROS FROM foxapp
  177.    DELETE FILE foxapp.fky
  178. ENDIF
  179. IF m.t_stat = "ON"
  180.    SET TALK ON
  181. ENDIF
  182. SET POINT TO "&set_point"
  183. POP KEY ALL
  184. POP MENU _msysmenu
  185. CLEAR PROGRAM
  186.  
  187. * Restore original error and escape routines
  188. IF TYPE('fxapp_error') = 'C'
  189.    ON ERROR &fxapp_error
  190. ENDIF
  191.  
  192. IF TYPE('fxapp_esc') = 'C'
  193.    ON ESCAPE &fxapp_esc
  194. ENDIF
  195.  
  196. SET SAFETY ON
  197. RELEASE m.bailout, m.dbfname, m.win_name, m.wiz_screen, m.filt_expr, m.srchterm, m.skipvar, m.act3
  198. RELEASE dbflist
  199. RETURN
  200.  
  201. *******************************************************************
  202. PROCEDURE setrelat
  203. * This procedure opens subsidiary databases (if any) and establishes
  204. * the relations between the main database and the subsidiary
  205. * databases.  It will be empty if there are no subsidiary databases.
  206. RETURN
  207.  
  208.  
  209. *******************************************************************
  210. PROCEDURE definedbf
  211. * Define the dbflist array
  212. PUBLIC dbflist[m.numareas,m.numcols]
  213. DBFLIST[1,1] = ''
  214. DBFLIST[1,2] = ''
  215. DBFLIST[1,3] = ''
  216. DBFLIST[1,4] = ''
  217. DBFLIST[1,5] = ''
  218. DBFLIST[1,6] = ''
  219. DBFLIST[1,7] = ''
  220. DBFLIST[1,8] = ''
  221. DBFLIST[1,9] = ''
  222. DBFLIST[1,10] = ''
  223. DBFLIST[1,11] = ''
  224. DBFLIST[1,12] = ''
  225. DBFLIST[1,13] = ''
  226. DBFLIST[2,1] = ''
  227. DBFLIST[2,2] = ''
  228. DBFLIST[2,3] = ''
  229. DBFLIST[2,4] = ''
  230. DBFLIST[2,5] = ''
  231. DBFLIST[2,6] = ''
  232. DBFLIST[2,7] = ''
  233. DBFLIST[2,8] = ''
  234. DBFLIST[2,9] = ''
  235. DBFLIST[2,10] = ''
  236. DBFLIST[2,11] = ''
  237. DBFLIST[2,12] = ''
  238. DBFLIST[2,13] = ''
  239. DBFLIST[3,1] = ''
  240. DBFLIST[3,2] = ''
  241. DBFLIST[3,3] = ''
  242. DBFLIST[3,4] = ''
  243. DBFLIST[3,5] = ''
  244. DBFLIST[3,6] = ''
  245. DBFLIST[3,7] = ''
  246. DBFLIST[3,8] = ''
  247. DBFLIST[3,9] = ''
  248. DBFLIST[3,10] = ''
  249. DBFLIST[3,11] = ''
  250. DBFLIST[3,12] = ''
  251. DBFLIST[3,13] = ''
  252. DBFLIST[4,1] = ''
  253. DBFLIST[4,2] = ''
  254. DBFLIST[4,3] = ''
  255. DBFLIST[4,4] = ''
  256. DBFLIST[4,5] = ''
  257. DBFLIST[4,6] = ''
  258. DBFLIST[4,7] = ''
  259. DBFLIST[4,8] = ''
  260. DBFLIST[4,9] = ''
  261. DBFLIST[4,10] = ''
  262. DBFLIST[4,11] = ''
  263. DBFLIST[4,12] = ''
  264. DBFLIST[4,13] = ''
  265. DBFLIST[5,1] = ''
  266. DBFLIST[5,2] = ''
  267. DBFLIST[5,3] = ''
  268. DBFLIST[5,4] = ''
  269. DBFLIST[5,5] = ''
  270. DBFLIST[5,6] = ''
  271. DBFLIST[5,7] = ''
  272. DBFLIST[5,8] = ''
  273. DBFLIST[5,9] = ''
  274. DBFLIST[5,10] = ''
  275. DBFLIST[5,11] = ''
  276. DBFLIST[5,12] = ''
  277. DBFLIST[5,13] = ''
  278. DBFLIST[6,1] = ''
  279. DBFLIST[6,2] = ''
  280. DBFLIST[6,3] = ''
  281. DBFLIST[6,4] = ''
  282. DBFLIST[6,5] = ''
  283. DBFLIST[6,6] = ''
  284. DBFLIST[6,7] = ''
  285. DBFLIST[6,8] = ''
  286. DBFLIST[6,9] = ''
  287. DBFLIST[6,10] = ''
  288. DBFLIST[6,11] = ''
  289. DBFLIST[6,12] = ''
  290. DBFLIST[6,13] = ''
  291. DBFLIST[7,1] = ''
  292. DBFLIST[7,2] = ''
  293. DBFLIST[7,3] = ''
  294. DBFLIST[7,4] = ''
  295. DBFLIST[7,5] = ''
  296. DBFLIST[7,6] = ''
  297. DBFLIST[7,7] = ''
  298. DBFLIST[7,8] = ''
  299. DBFLIST[7,9] = ''
  300. DBFLIST[7,10] = ''
  301. DBFLIST[7,11] = ''
  302. DBFLIST[7,12] = ''
  303. DBFLIST[7,13] = ''
  304. DBFLIST[8,1] = ''
  305. DBFLIST[8,2] = ''
  306. DBFLIST[8,3] = ''
  307. DBFLIST[8,4] = ''
  308. DBFLIST[8,5] = ''
  309. DBFLIST[8,6] = ''
  310. DBFLIST[8,7] = ''
  311. DBFLIST[8,8] = ''
  312. DBFLIST[8,9] = ''
  313. DBFLIST[8,10] = ''
  314. DBFLIST[8,11] = ''
  315. DBFLIST[8,12] = ''
  316. DBFLIST[8,13] = ''
  317. DBFLIST[9,1] = ''
  318. DBFLIST[9,2] = ''
  319. DBFLIST[9,3] = ''
  320. DBFLIST[9,4] = ''
  321. DBFLIST[9,5] = ''
  322. DBFLIST[9,6] = ''
  323. DBFLIST[9,7] = ''
  324. DBFLIST[9,8] = ''
  325. DBFLIST[9,9] = ''
  326. DBFLIST[9,10] = ''
  327. DBFLIST[9,11] = ''
  328. DBFLIST[9,12] = ''
  329. DBFLIST[9,13] = ''
  330. DBFLIST[10,1] = ''
  331. DBFLIST[10,2] = ''
  332. DBFLIST[10,3] = ''
  333. DBFLIST[10,4] = ''
  334. DBFLIST[10,5] = ''
  335. DBFLIST[10,6] = ''
  336. DBFLIST[10,7] = ''
  337. DBFLIST[10,8] = ''
  338. DBFLIST[10,9] = ''
  339. DBFLIST[10,10] = ''
  340. DBFLIST[10,11] = ''
  341. DBFLIST[10,12] = ''
  342. DBFLIST[10,13] = ''
  343. DBFLIST[11,1] = ''
  344. DBFLIST[11,2] = ''
  345. DBFLIST[11,3] = ''
  346. DBFLIST[11,4] = ''
  347. DBFLIST[11,5] = ''
  348. DBFLIST[11,6] = ''
  349. DBFLIST[11,7] = ''
  350. DBFLIST[11,8] = ''
  351. DBFLIST[11,9] = ''
  352. DBFLIST[11,10] = ''
  353. DBFLIST[11,11] = ''
  354. DBFLIST[11,12] = ''
  355. DBFLIST[11,13] = ''
  356. DBFLIST[12,1] = ''
  357. DBFLIST[12,2] = ''
  358. DBFLIST[12,3] = ''
  359. DBFLIST[12,4] = ''
  360. DBFLIST[12,5] = ''
  361. DBFLIST[12,6] = ''
  362. DBFLIST[12,7] = ''
  363. DBFLIST[12,8] = ''
  364. DBFLIST[12,9] = ''
  365. DBFLIST[12,10] = ''
  366. DBFLIST[12,11] = ''
  367. DBFLIST[12,12] = ''
  368. DBFLIST[12,13] = ''
  369. DBFLIST[13,1] = ''
  370. DBFLIST[13,2] = ''
  371. DBFLIST[13,3] = ''
  372. DBFLIST[13,4] = ''
  373. DBFLIST[13,5] = ''
  374. DBFLIST[13,6] = ''
  375. DBFLIST[13,7] = ''
  376. DBFLIST[13,8] = ''
  377. DBFLIST[13,9] = ''
  378. DBFLIST[13,10] = ''
  379. DBFLIST[13,11] = ''
  380. DBFLIST[13,12] = ''
  381. DBFLIST[13,13] = ''
  382. DBFLIST[14,1] = ''
  383. DBFLIST[14,2] = ''
  384. DBFLIST[14,3] = ''
  385. DBFLIST[14,4] = ''
  386. DBFLIST[14,5] = ''
  387. DBFLIST[14,6] = ''
  388. DBFLIST[14,7] = ''
  389. DBFLIST[14,8] = ''
  390. DBFLIST[14,9] = ''
  391. DBFLIST[14,10] = ''
  392. DBFLIST[14,11] = ''
  393. DBFLIST[14,12] = ''
  394. DBFLIST[14,13] = ''
  395. DBFLIST[15,1] = ''
  396. DBFLIST[15,2] = ''
  397. DBFLIST[15,3] = ''
  398. DBFLIST[15,4] = ''
  399. DBFLIST[15,5] = ''
  400. DBFLIST[15,6] = ''
  401. DBFLIST[15,7] = ''
  402. DBFLIST[15,8] = ''
  403. DBFLIST[15,9] = ''
  404. DBFLIST[15,10] = ''
  405. DBFLIST[15,11] = ''
  406. DBFLIST[15,12] = ''
  407. DBFLIST[15,13] = ''
  408. DBFLIST[16,1] = ''
  409. DBFLIST[16,2] = ''
  410. DBFLIST[16,3] = ''
  411. DBFLIST[16,4] = ''
  412. DBFLIST[16,5] = ''
  413. DBFLIST[16,6] = ''
  414. DBFLIST[16,7] = ''
  415. DBFLIST[16,8] = ''
  416. DBFLIST[16,9] = ''
  417. DBFLIST[16,10] = ''
  418. DBFLIST[16,11] = ''
  419. DBFLIST[16,12] = ''
  420. DBFLIST[16,13] = ''
  421. DBFLIST[17,1] = ''
  422. DBFLIST[17,2] = ''
  423. DBFLIST[17,3] = ''
  424. DBFLIST[17,4] = ''
  425. DBFLIST[17,5] = ''
  426. DBFLIST[17,6] = ''
  427. DBFLIST[17,7] = ''
  428. DBFLIST[17,8] = ''
  429. DBFLIST[17,9] = ''
  430. DBFLIST[17,10] = ''
  431. DBFLIST[17,11] = ''
  432. DBFLIST[17,12] = ''
  433. DBFLIST[17,13] = ''
  434. DBFLIST[18,1] = ''
  435. DBFLIST[18,2] = ''
  436. DBFLIST[18,3] = ''
  437. DBFLIST[18,4] = ''
  438. DBFLIST[18,5] = ''
  439. DBFLIST[18,6] = ''
  440. DBFLIST[18,7] = ''
  441. DBFLIST[18,8] = ''
  442. DBFLIST[18,9] = ''
  443. DBFLIST[18,10] = ''
  444. DBFLIST[18,11] = ''
  445. DBFLIST[18,12] = ''
  446. DBFLIST[18,13] = ''
  447. DBFLIST[19,1] = ''
  448. DBFLIST[19,2] = ''
  449. DBFLIST[19,3] = ''
  450. DBFLIST[19,4] = ''
  451. DBFLIST[19,5] = ''
  452. DBFLIST[19,6] = ''
  453. DBFLIST[19,7] = ''
  454. DBFLIST[19,8] = ''
  455. DBFLIST[19,9] = ''
  456. DBFLIST[19,10] = ''
  457. DBFLIST[19,11] = ''
  458. DBFLIST[19,12] = ''
  459. DBFLIST[19,13] = ''
  460. DBFLIST[20,1] = ''
  461. DBFLIST[20,2] = ''
  462. DBFLIST[20,3] = ''
  463. DBFLIST[20,4] = ''
  464. DBFLIST[20,5] = ''
  465. DBFLIST[20,6] = ''
  466. DBFLIST[20,7] = ''
  467. DBFLIST[20,8] = ''
  468. DBFLIST[20,9] = ''
  469. DBFLIST[20,10] = ''
  470. DBFLIST[20,11] = ''
  471. DBFLIST[20,12] = ''
  472. DBFLIST[20,13] = ''
  473. DBFLIST[21,1] = ''
  474. DBFLIST[21,2] = ''
  475. DBFLIST[21,3] = ''
  476. DBFLIST[21,4] = ''
  477. DBFLIST[21,5] = ''
  478. DBFLIST[21,6] = ''
  479. DBFLIST[21,7] = ''
  480. DBFLIST[21,8] = ''
  481. DBFLIST[21,9] = ''
  482. DBFLIST[21,10] = ''
  483. DBFLIST[21,11] = ''
  484. DBFLIST[21,12] = ''
  485. DBFLIST[21,13] = ''
  486. DBFLIST[22,1] = ''
  487. DBFLIST[22,2] = ''
  488. DBFLIST[22,3] = ''
  489. DBFLIST[22,4] = ''
  490. DBFLIST[22,5] = ''
  491. DBFLIST[22,6] = ''
  492. DBFLIST[22,7] = ''
  493. DBFLIST[22,8] = ''
  494. DBFLIST[22,9] = ''
  495. DBFLIST[22,10] = ''
  496. DBFLIST[22,11] = ''
  497. DBFLIST[22,12] = ''
  498. DBFLIST[22,13] = ''
  499. DBFLIST[23,1] = ''
  500. DBFLIST[23,2] = ''
  501. DBFLIST[23,3] = ''
  502. DBFLIST[23,4] = ''
  503. DBFLIST[23,5] = ''
  504. DBFLIST[23,6] = ''
  505. DBFLIST[23,7] = ''
  506. DBFLIST[23,8] = ''
  507. DBFLIST[23,9] = ''
  508. DBFLIST[23,10] = ''
  509. DBFLIST[23,11] = ''
  510. DBFLIST[23,12] = ''
  511. DBFLIST[23,13] = ''
  512. DBFLIST[24,1] = ''
  513. DBFLIST[24,2] = ''
  514. DBFLIST[24,3] = ''
  515. DBFLIST[24,4] = ''
  516. DBFLIST[24,5] = ''
  517. DBFLIST[24,6] = ''
  518. DBFLIST[24,7] = ''
  519. DBFLIST[24,8] = ''
  520. DBFLIST[24,9] = ''
  521. DBFLIST[24,10] = ''
  522. DBFLIST[24,11] = ''
  523. DBFLIST[24,12] = ''
  524. DBFLIST[24,13] = ''
  525. DBFLIST[25,1] = ''
  526. DBFLIST[25,2] = ''
  527. DBFLIST[25,3] = ''
  528. DBFLIST[25,4] = ''
  529. DBFLIST[25,5] = ''
  530. DBFLIST[25,6] = ''
  531. DBFLIST[25,7] = ''
  532. DBFLIST[25,8] = ''
  533. DBFLIST[25,9] = ''
  534. DBFLIST[25,10] = ''
  535. DBFLIST[25,11] = ''
  536. DBFLIST[25,12] = ''
  537. DBFLIST[25,13] = ''
  538.  
  539.  
  540. *******************************************************************